package com.quick.develop.flowable.domain.task;

import com.quick.develop.flowable.domain.BpmBaseDO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.flowable.task.api.DelegationState;

import java.io.Serializable;
import java.util.Date;

/**
 * @author GJH
 * @description 外部查询任务响应
 * @date 2023/1/3
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel("流程管理后台 - 流程任务外部查询的 Running 进行中的分页项 Response VO")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BpmTaskTodoItemExternalRespVO extends BpmBaseDO implements Serializable {

    private static final long serialVersionUID = -5698148103695380116L;

    @ApiModelProperty(value = "执行ID", example = "2048")
    private String executionId;

    @ApiModelProperty(value = "任务名字", notes = "目前任务节点名称")
    private String name;

    @ApiModelProperty(value = "审批人", notes = "判断是否是候选任务")
    private String assignee;

    @ApiModelProperty(value = "拥有者")
    private String owner;

    @ApiModelProperty(value = "类型")
    private String category;

    @ApiModelProperty(value = "流程名称", example = "xxx发起XX流程")
    private String processName;

    @ApiModelProperty(value = "流程分类")
    private String processCategory;

    @ApiModelProperty(value = "流程发起人id")
    private String startUserId;

    @ApiModelProperty(value = "流程发起人name")
    private String startUserName;

    @ApiModelProperty(value = "流程发起人id[name]")
    private String startUser;

    @ApiModelProperty(value = "流程发起时间")
    private Date startTime;

    @ApiModelProperty(value = "描述")
    private String description;

    @ApiModelProperty(value = "任务接收时间")
    private Date claimTime;

    @ApiModelProperty(value = "任务创建时间")
    private Date createTime;

    @ApiModelProperty(value = "激活状态", example = "1", notes = "参见 SuspensionState 枚举")
    private Integer suspensionState;

    @ApiModelProperty(value = "委派标识")
    private DelegationState delegationState;

    @ApiModelProperty(value = "任务处理地址")
    private String url;

    @ApiModelProperty(value = "请求APP")
    private String app;

    @ApiModelProperty(value = "请求密钥")
    private String key;

}
